গত কয়েকটি সেশনে আমরা পাইথন প্রোগ্রামের অনেক কিছু শিখেছি। পাইথনে কিভাবে প্রোগ্রাম লিখতে হয় তা শিখেছি, ভ্যারিয়েবল কী এবং কীভাবে ব্যবহার করতে হয় তা জেনেছি, এবং শর্ত প্রয়োগ করে প্রোগ্রাম লেখা শিখেছি। এই সেশনে আমরা প্রোগ্রামিং এর আরেকটি নতুন বিষয় সম্পর্কে শিখবো যেটি হল লুপ। আমরা তো সারাদিনে কতরকম কাজ করি। আমাদের জীবনে কি এমন কোনো কাজ আছে যেটা আমাদের বারবার করতে হয়? অনেক সময় একই কাজ বারবার করতে গেলে আমাদের একঘেয়েমিও চলে আসে। কিন্তু কিছু কাজ তবু আমাদের অনবরত করতে হয়।
যেমন- প্রতিদিন আমাদের দাঁত মাজতে হয়, স্কুলে যেতে হয়, তিনবার করে খাবার খেতে হয়, ঘুমাতে হয় আরও কত কী। এবার তাহলে এসো নিচের ছকে আমাদের প্রতিদিন করতে হয়, অর্থাৎ নিয়মিত আমাদের জীবনে পুনরাবৃত্তি ঘটে এমন কিছু কাজের তালিকা লিখে ফেলি -
আমার জীবনে বারবার ঘটে এমন কাজ |
১। দাঁত মাজা |
|
|
|
|
|
একই কাজ যখন আমরা বারবার করি আমাদের কি প্রতিবার কাজটি করা শিখে নিতে হয়? এমন কিন্তু না। আমরা একবার যদি একটি কাজ করা শিখে যাই, সেই শিক্ষা কাজে লাগিয়েই বারবার ওই একই কাজ করতে পারি, তাই না? যন্ত্রকে প্রোগ্রাম করার ব্যাপারটাও কিন্তু একইরকম। আমাদের যদি একটি প্রোগ্রামের মধ্যে একই রকমের কাজ পর পর 50 বার করতে হয়, তাহলে 50 বার সেই লাইনটি পরপর কোডে লেখার দরকার নেই। একবার লিখে সেই লাইনটিকেই নির্দিষ্ট শর্ত মেনে বারবার রান করা সম্ভব।
ধরি আমাদেরকে বলা হল। থেকে 5 পর্যন্ত প্রতিটি পূর্ণসংখ্যা প্রিন্ট করতে। আমরা চাইলে নিচের কোডটি লিখে ফেলতে পারি।
print(1) print(2) print(3) print(4) print(5) |
কিন্তু আমাদের যদি এভাবে করে। থেকে 1000 পর্যন্ত লিখতে বলা হয়? প্রতিবার একটি করে সংখ্যা প্রিন্ট করার জন্য কিন্তু আমাদেরকে 1000 লাইন লিখতে হবে! অথচ আমরা কিন্তু প্রতিবার শুধু একটি করে সংখ্যা প্রিন্ট করছি। তাহলে 1000 বার আমরা কিন্তু একই রকমের কাজ করে যাচ্ছি। অর্থাৎ এখানে একই রকমের কাজ পুনরাবৃত্তি হচ্ছে। যখন একই রকমের কাজ বারবার করতে হয় সেটি কে প্রোগ্রামিং এ সহজেই নির্দিষ্ট শর্ত মেনে ডিজাইন করা যায় লুপ (Loop) ব্যবহার করে। লুপ মানে হচ্ছে বারবার ঘটা।
পাইথনে দুই রকমের লুপ বেশি প্রচলিত-
while loop (হোয়াইল লুপ)
for loop (ফর লুপ)
এই শিখন অভিজ্ঞতায় আমরা হোয়াইল লুপ সম্পর্কে জানব এবং পরের শ্রেণিতে ফর লুপ সম্পর্কে জানতে পারব। হোয়াইল লুপে মূলত দুইটি অংশ রয়েছে
ক) শর্ত বা কন্ডিশন যদি একটি নির্দিষ্ট শর্ত পূরণ হয় তাহলে লুপের ভিতরে প্রবেশ করব। যদি শর্ত পূরণ না হয়, তাহলে লুপকে বাদ দিয়ে প্রোগ্রামের পরের অংশে চলে যাব।
খ) টাস্ক শর্ত পূরণ হলে লুপের ভিতর আমরা যা যা করব সেটি হল আমাদের টাস্ক।
আমরা এর আগে if নিয়ে কাজ করেছি পাইথনে। if এর মধ্যেও একটি নির্দিষ্ট শর্ত পূরণ হলে আমরা নির্দিষ্ট কাজ করতে পারতাম। যদি শর্ত পূরণ না হত, if এর ভিতরের কাজটি হত না। তবে if এর শর্ত পূরণ হলে একবার মাত্র কাজটি সম্পন্ন হত। হোয়াইল লুপের প্রদত্ত শর্ত পূরণ হলে একবার শুধুমাত্র কাজটি হয়ে থেমে যাবে না। বারবার আমাদের শর্তটি যাচাই হতে থাকবে। যতক্ষণ পর্যন্ত আমাদের শর্ত পূরণ হবে, অনবরত লুপটির ভিতরে বলা কাজটি হতে থাকবে। যখনই শর্ত পূরণ হবে না, লুপ থেকে আমরা প্রোগ্রামের পরের অংশে চলে যাব।
হোয়াইল লুপ কীভাবে লিখতে হয় চল ধাপগুলো দেখে নেই,
১। প্রথমে আমরা একটি ভ্যারিয়েবলের মান এসাইন করব
যেমন ধরি,
i=1
২। এরপর আমরা while লিখে আমাদের নির্দিষ্ট শর্তটি লিখে: (কোলন চিহ্ন) দিব
ধরি, । এর মান যতক্ষণ 5 এরচেয়ে ছোট হবে ততক্ষণ আমাদের লুপ চলবে। তাহলে লিখতে পারি,
while i<5:
৩। তারপর আমরা যে নির্দিষ্ট কাজ করতে চাই সেটি লিখব। যেমন আমরা যদি চাই প্রতিবার লুপের ভিতর 1 এর বর্তমান মান আমরা প্রিন্ট করব, তাহলে লিখতে পারি-
print(i)
৪। সবশেষে লুপের ভিতরে যে ভ্যারিয়েবলের মানের উপর নির্ভর করে আমরা শর্ত নির্বাচন করেছি, সেই ভ্যারিয়েবলের মান পরিবর্তন করব। ভ্যারিয়েবলের মান যদি পরিবর্তন না করি, আমাদের লুপের শর্ত আজীবন পূরণ হতে থাকবে। ফলে আমাদের লুপটি অসীম সময় চলতেই থাকবে, কখনো লুপের বাইরে আমরা যেতে পারব না। তাই আমাদেরকে অবশ্যই ভ্যারিয়েবলের মান পরিবর্তন করতে হবে।
যেমন ধরি প্রতিবার আমরা ভ্যারিয়েবলের মান। করে বাড়াতে চাই। তাহলে লিখতে পারি-
i=i+1
তাহলে আমাদের হোয়াইল লুপের পুরো সিনট্যাক্স নিচের মত দাঁড়াবে-
i-l while i<5: print(i) i=i+1 |
খেয়াল রাখতে হবে, পাইথনে লুপ লেখার সময়েও ইনডেনটেশন অনুসরণ করতে হয়। তাই আমরা while i<5: লেখার পর এই লুপের অধীনে থাকা লাইনগুলো চারঘর পরিমাণ স্পেস ফাঁকা দিয়ে লিখেছি।
এবার চল একটি কাজ করি। এই কোডের প্রতিটি ধাপে আমাদের আউটপুট কেমন হয় সেটি নিচের ছকে নিজেরা পূরণ করি-
কোডের লাইন |
i=1 |
বর্তমানে i এর মান = 1 |
আমরা তাহলে পুরো কোডটি থেকে কি আউটপুট পেয়েছি? নিচের ছকে লিখে ফেলি-
|
খেয়াল করে দেখি, আমরা। এর মান শুরু করেছিলাম। থেকে। প্রতিবার। এর মান। করে বাড়িয়েছি। আর শর্ত দিয়েছিলাম i<5 তাই। থেকে শুরু করে 5 এরচেয়ে ছোট সবগুলো পূর্ণ সংখ্যা প্রিন্ট করেছে আমাদের প্রোগাম।
এজন্য আউটপুট পেয়েছি
1
2
3
4
যদি আমরা শর্ত দিতাম i<11 তাহলে ।। এরচেয়ে ছোট সবগুলো পূর্ণ সংখ্যা প্রিন্ট হত।
চল এবারে নিচের প্রোগ্রামগুলোর আউটপুট আমরা বের করি-
প্রোগ্রাম | আউটপুট |
i-4 while i<20: print(i) i=i+4 | |
i=2024 while i>2018: print(i) i-i-1 |
Read more